\section{Testing Approach}
Our tests can be broken into two categories: arithmetic tests and encoding/decoding tests.  The arithmetic tests measure the raw performance of the implementation while the encoding/decoding tests measure the performance of the implementation when used for an encoding or decoding task. All of the test were run on the machines in the Hydra lab which have  Intel Xeon Processor X5550 (Nahalem) 2.66 GHz Quad Core CPU's, 12 GB of RAM, and NVidia Quadro FX 3800 GPU's which have 1GB Memory, 192 GPU Cores, and a 1.19 GHz clock rate.
\subsection{Aritmetic Tests}
The arithmetic tests have three components. (need to explain the three tests) Each test measures megabytes of multiplies per second achieved by the implementation. We ran each test using each implementation with $w \in \{8, 16, 32\}$.   In order to check the consistency of our results we ran each test 25 times on 14 different computers giving us a total of 350 data points for each test and each size of $w$.  We then calculated the mean and standard deviation for each test, size of $w$, implementation.
\subsection{Encoding / Decoding Tests}
 
